$(document).ready(function()
{
    $('a.removeRow').live('click', function()
    {
        var idrow = $(this).metadata().idr;
        var pid = idrow.substr(4, idrow.length - 4);
        $.post('ajax_controller.php', {
            requestType: 'PGlobal',
            requestName: 'shopcart_removeItem',
            requestParams: pid
        }, function (data)
        {
            if ($('table.dienthoai tbody tr').length == 1) {
                Dialog.show('<span class="info">Không còn hàng trong giỏ hàng!<em>chuyển về trang chủ sau 3s</em></span>');
                setTimeout('window.location="home.php"', 3000);
            } else if (data == '1') {
                $('#content').load('ajax_controller.php', {
                    requestType: 'PGlobal',
                    requestName: 'renderShopcartDetail'
                });
            }
        }).complete(function() {Dialog.hide();})
        return false;
    });

    // Xử lý sự kiện khi thay đổi số lượng
    $('input.solg').live('keyup', function()
    {
        var txt = $(this);
        var td = txt.parents('tr');
        var solg = parseInt(txt.val());
        var gia = parseInt(td.metadata().price);
        var km = parseInt(td.metadata().sale);
        if (!isNaN(solg)) {
            $(this).removeClass('error');
            var giatrikm = km * solg;
            td.metadata().total = gia * solg - giatrikm;
            td.metadata().quantity = solg;

            $.post('ajax_controller.php', {
                requestType: 'PGlobal',
                requestName: 'changeQuantityShopcart',
                requestParams: {
                    id: td.metadata().id,
                    quantity: solg
                }
            });

            $.post('ajax_controller.php', {
                requestType: 'PGlobal',
                requestName: 'toVnd',
                requestParams: gia * solg - giatrikm
            }, function(data) {
                td.children('.tt').text(data);
            });
            $.post('ajax_controller.php', {
                requestType: 'PGlobal',
                requestName: 'toVnd',
                requestParams: total()
            }, function(data) {
                $('#thanhtien .tongtien').text(data);
            });
            if (km > 0) {
                $.post('ajax_controller.php', {
                    requestType: 'PGlobal',
                    requestName: 'toVnd',
                    requestParams: km * solg
                }, function(data) {
                    td.children('.gg').text(data);
                });
            }
        } else {
            $(this).addClass('error');
        }
    });

    // Xử lý sự kiện xóa giỏ hàng
    $('#shopcart-clear').live('click', function()
    {
        if (confirm('Bạn muốn xóa toàn bộ giỏ hàng?')) {
            Dialog.show('Đang xóa giỏ hàng, vui lòng đợi giây lát!', true, false);
            $.post('ajax_controller.php', {
                requestType: 'PGlobal',
                requestName: 'clearShopcart'
            }, function() {
                Dialog.show('<span class="info">Xóa giỏ hàng hoàn tất! <em>chuyển về trang chủ sau 2s</em></span>', false, false);
                setTimeout('window.location="home.php";', 2000);
            });
        }
    });

    function total()
    {
        var t = 0;
        $('table.dienthoai tr.row').each(function()
        {
            t += parseInt($(this).metadata().total);
        });
        return t;
    }

    // xử lý sự kiện click link sử dụng địa chỉ mặc định
    $('.functions a.default').live('click', function()
    {
        Dialog.show('Vui lòng đợi giây lát!', true, false);
        $.post('ajax_controller.php', {
            requestType: 'KhachHang',
            requestName: 'requestCurrentAddress'
        }, function(data) {
            if (data['errcode'] == '0') {
                $('#diachigh').text(data['address']);
            } else {
                $('a.kh-login-link').click();
            }
            Dialog.hide();
        }, 'json');

        return false;
    });


    $('.functions a.custom').live('click', function()
    {
        if ($('#new-address-dialog').length == 0) {
            Dialog.show('Vui lòng đợi giây lát!', true, false);
            $.post('ajax_controller.php', {
                requestType: 'PGlobal',
                requestName: 'requestNewAddressInput'
            }, function(data)
            {
                $('body').append(data);
                Dialog.hide();
                // Xử lý sự kiện nút cancel trên form nhập địa chỉ
                $('#btnNewAddressCancel').click(function()
                {
                    $('#new-address-dialog').fadeOut(300);
                })
                $('#frmNewAddress input.required').before('<span class="sreq">(*)</span>');
                $('#frmNewAddress input').each(function()
                {
                    var imgId = $(this).attr('id') + 'Info';
                    var element = '<img class="inputInfo" src="img/ajax/ok.png" alt="' + imgId + '" id="' + imgId + '"/>';
                    $(this).after(element);
                });

                $('.textbox').example(function()
                {
                    return $(this).attr('title');
                }, {className: 'form-example'});

                initialFormNewAddress();

                showObject('new-address-dialog');
            }, 'html');
        } else {
            showObject('new-address-dialog');
        }

        return false;
    });

    function showObject(id)
    {
        $(document).scroll();
        $('#' + id).fadeIn(800);
    }

    function initialFormNewAddress()
    {

        var sonha = $('#sonha');
        var phuongxa = $('#phuongxa');
        var quanhuyen = $('#quanhuyen');
        var tinhtp = $('#tinhtp');

        var wailtimg = 'img/ajax/wait.gif';
        var goodimg = 'img/ajax/ok.png';
        var errorimg = 'img/ajax/warning.png';

        function waiting(id) {
            $('#' + id + 'Info').attr('src', wailtimg).fadeIn(300);
        }

        /**
         * Thiết lập hiển cảnh báo (ảnh) bên phải các textfield
         * @param id ID của textfied
         * @param msg Chuỗi thông báo
         * @param err true nếu báo lỗi, false nếu thông báo thành công
         */
        function warning(id, msg, err) {
            var img = $('#' + id + 'Info');
            img.fadeIn(300);
            if (err) {
                img.attr('src', errorimg);
                img.attr('title', msg);
                $('#' + id).addClass('error');
            } else {
                img.attr('src', goodimg);
                img.attr('title', msg);
                $('#' + id).removeClass('error');
            }
        }

        function sonhaValidate()
        {
            waiting('sonha');
            if (!/^.+$/.test(sonha.val()) || sonha.val() == sonha.attr('title')) {
                warning('sonha', 'Vui lòng nhập tên tài khoản', true);
            }  else {
                warning('sonha', 'Tên tài khoản hợp lệ', false);
            }
        }

        function phuongxaValidate()
        {
            waiting('phuongxa');
            if (!/^.+$/.test(phuongxa.val()) || phuongxa.val() == phuongxa.attr('title')) {
                warning('phuongxa', 'Vui lòng nhập phường/xã!', true);
            } else {
                warning('phuongxa', 'Phường/xã hợp lệ', false);
            }
        }


        function quanhuyenValidate()
        {
            waiting('quanhuyen');
            if (!/^.+$/.test(quanhuyen.val()) || quanhuyen.val() == quanhuyen.attr('title')) {
                warning('quanhuyen', 'Vui lòng nhập quận/huyện!', true);
            } else {
                warning('quanhuyen', 'Quận/huyện hợp lệ', false);
            }
        }

        function tinhtpValidate()
        {
            waiting('tinhtp');
            if (!/^.+$/.test(tinhtp.val()) || tinhtp.val() == tinhtp.attr('title')) {
                warning('tinhtp', 'Vui lòng nhập phường/xã!', true);
            } else {
                warning('tinhtp', 'Phường/xã hợp lệ', false);
            }
        }


        $('#frmNewAddress input').blur(function()
        {
            var fn = $(this).attr('id') + 'Validate';
            eval(fn + '()');

        });

        $('#frmNewAddress input').keyup(function()
        {
            var fn = $(this).attr('id') + 'Validate';
            eval(fn + '()');
        });

        $('#frmNewAddress').live('submit', function()
        {
            sonhaValidate();
            phuongxaValidate();
            quanhuyenValidate();
            tinhtpValidate();

            // Kiểm tra xem tất cả đã hợp lệ
            var checkFlag = true;

            $('#frmNewAddress input').each(function()
            {
                if ($(this).hasClass('error')) {
                    checkFlag = false;
                }
            });

            var diachigh = '<em>Số</em> ' + sonha.val() + ', <em>Phường/xã </em>' + phuongxa.val() + '<em>, Quận/huyện </em>' + quanhuyen.val() + '<em>, </em>' +
                tinhtp.val();

            if (checkFlag) {
                $('#diachigh').html(diachigh);
            }

            $('#new-address-dialog').fadeOut(200);
            return false;
        });
    }

    $('#shopcart-complete').live('click', function()
    {
        $.post('ajax_controller.php', {
            requestType: 'KhachHang',
            requestName: 'isLogged'
        }, function(data){
            if (data == '0') {
                Dialog.show('Vui lòng đăng kí hoặc đăng nhập để hoàn tất đặt hàng!', false, true);
            } else {
                Dialog.show('Vui lòng đợi giây lát!', true, false);
                $.post('ajax_controller.php', {
                    requestType: 'PGlobal',
                    requestName: 'submitDondh',
                    requestParams: $('#diachigh').text()
                }, function() {
                    Dialog.show('Hoàn tất đặt hàng, chúng tôi sẽ liên hệ với bạn sớm!', false, true);
                    $('#btnClose').click(function()
                    {
                        window.location = 'home.php';
                    });
                });
            }
        });
    });


    (function()
    {
        $('#shopcart-box').hide();

    })();
});